package services.common;

import java.util.Date;
import java.util.List;
import java.util.Map;

import models.common.entity.t_company_type;
import services.base.BaseService;

import common.utils.Factory;
import common.utils.PageBean;
import common.utils.ResultInfo;

import daos.common.CompanyTypeDao;


/**
 * 企业类型service
 *
 * @description 
 *
 * @author zhiliang.lan
 * @createDate 2017年4月18日
 */
public class CompanyTypeService extends BaseService<t_company_type>{
	
	protected static CompanyInfoService companyInfoService = Factory.getService(CompanyInfoService.class);
	
	protected CompanyTypeDao companyTypeDao = null;
	
	protected CompanyTypeService() {
		this.companyTypeDao = Factory.getDao(CompanyTypeDao.class);
		
		super.basedao = this.companyTypeDao;
	}
	
	/**
	 * 分页查询所有的公司类型
	 * @param currPage 当前第几页
	 * @param pageSize 每页显示的数据量
	 * @return
	 * @author zhiliang.lan
	 * @createDate 2017年4月18日
	 */
	public PageBean<t_company_type> showAllCompanyType(int currPage, int pageSize, String companyTypeName) {
		
		return	companyTypeDao.pageOfCompanyType(currPage, pageSize ,companyTypeName);
	}

	/**
	 * 保存新增
	 * @param companyType
	 * @return
	 * @author zhiliang.lan
	 * @createDate 2017年4月19日
	 */
	public ResultInfo addCompanyType(t_company_type companyType) {
		ResultInfo result = new ResultInfo();
		
		companyType.time = new Date();
		boolean flag = companyTypeDao.save(companyType);
		if (!flag) {
			
			result.code = ResultInfo.ERROR_SQL;
			result.msg = "系统错误";	
			
			return result;
		} 
		
		result.code = 1;
		result.msg="企业类型添加成功!";
		result.obj = companyType;
		
		return result;
	}

	
	/**
	 * 更新名称  简介
	 * @param id
	 * @param name
	 * @param info
	 * @return
	 * @author zhiliang.lan
	 * @createDate 2017年4月18日
	 */
	public ResultInfo updateCompanyType(long id, String name, String info) {
		
		ResultInfo result = new ResultInfo();
		
		t_company_type companyType = companyTypeDao.findByID(id);
		
		companyType.name = name;
		companyType.info = info;
		companyType.time =new Date();
		
		boolean flag = companyTypeDao.save(companyType);
		if (!flag) {
			result.code = ResultInfo.ERROR_SQL;
			result.msg = "系统错误!";

			return result;
		}
		
		result.code = 1;
		result.msg = "企业类型名称、简介已经更新";
		
		return result;
	}

	/**
	 * 根据userId查询企业类型
	 * @param userId
	 * @return
	 * @author zhiliang.lan
	 * @createDate 2017年4月18日
	 */
	public t_company_type findCompanyTypeByUserId(long userId) {
		
		return companyTypeDao.findCompanyType(userId);
	}
	
	
	/**
	 * 根据企业的名称进行模糊查询 
	 * @param name 输入企业类型的名称
	 * @return 返回完整的企业类型
	 * @author liaijun
	 * @createDate 2017年07月14日
	 */
	public t_company_type findCompanyTypeByUserId(String name) {
		return companyTypeDao.findCompanyTypeByUserId(name);
	}

	/**
	 * 查询所有企业类型的list
	 * @return
	 * @author zhiliang.lan
	 * @createDate 2017年5月5日
	 */
	public List<t_company_type> findAllCompanyType() {
		
		return companyTypeDao.findAll();
	}

	/**
	 * 查询所有企业类型  -app
	 * 
	 * @return
	 * @author zhiliang.lan
	 * @createDate 2017年7月31日
	 */
	public List<Map<String, Object>> findAllCompanyTypeApp() {
		
		/*JSONObject json = new JSONObject();
		
		//查询
		List<Map<String , Object>> companyTypeList = companyTypeDao.findAllCompanyTypeApp();
		if(null == companyTypeList || companyTypeList.size() == 0){
			json.put("code", 999);
			json.put("msg", "没有数据");
			return json.toString();
		}
		
		json.put("companyTypeList", companyTypeList);*/
		
		return companyTypeDao.findAllCompanyTypeApp();
	}

	
	
	
}
